package frame;

import util.BoolList;
import temp.*;
import tree.ExpList;

public abstract class Frame implements TempMap{
	abstract public Frame newFrame(Label name, BoolList formals);
	public Label name;
	public AccessList formals;
	abstract public tree.Exp externalCall(String func, tree.ExpList args);
	abstract public tree.TEMP allocLocal(boolean escape);

	abstract public Temp RV();
	abstract public Temp FP();

	abstract public String tempMap(Temp temp);
	
	abstract public tree.Stm procEntryExit1(tree.Stm body);
	abstract public assem.InstrList procEntryExit2(assem.InstrList body);
	

}
